![【新機能】Amazon GlacierのVaultに単一のアクセスポリシーが設定できるようになりました](https://devio2023-media.developers.io/wp-content/uploads/2014/05/Amazon_Glacier.png)
【新機能】Amazon GlacierのVaultに単一のアクセスポリシーが設定できるようになりました
こんにちは、せーのです。今日はAmazon Glacierのアクセスコントロールについての新機能をご紹介します。
Vaultとは
Glacierをあまり使わない方には耳慣れない言葉かもしれません。VaultとはS3でいうBucketに当たるもので、ファイルをGlacierに格納する際には必ずVaultを作り、その中にファイルを入れます。Glacier(氷河)の中で食べ物を保管するにはVault(貯蔵庫)に入れておくのが一番、ということですね。
今までのVaultアクセスコントロール
もちろん今までもVaultに対するアクセスコントロールは可能でした。Vaultに対するアクセスを制限するには操作対象のIAMユーザ、グループに対してVaultに関しての権限をポリシーに書き込むことでコントロールしていました。複数ユーザーに対して制限を書ける時は都度それぞれのグループ、ユーザーにIAMポリシーを設定しなくてはいけなかったのですが、今回のこの機能でGlacier側から一律でアクセスコントロールが出来るようになりました。つまりS3におけるIAMポリシーとバケットポリシーのような関係がGlacierでも実現した、ということですね。
やってみた
ではサクッとやってみましょう。Management ConsoleよりGlacierを開きます。
Vaultを新規追加します。
そうすると作ったVaultに[Permission]というタブがあるので選択し、[Edit Permission]ボタンを押して編集します。
対象ポリシーを追加してみます。
ポリシーの設定方法は「誰が」「何をすることを」「許可する/拒否する」という形で決めていきます。「何をするのか」はVaultのアクセスポリシーとしてまとめられています。
一般のIAMポリシー同様Conditionも設定できるようになっています。
GUIで設定した際も確認画面としてJSON形式でポリシーが確認できます。こちらを直接修正することも可能ですので、より細かい設定はこちらで直接した方が楽な場合もあるかと思います。
例えばクロスアカウントでVaultに対してアクセスさせたい場合はこんなポリシーになります。
{ "Version":"2012-10-17", "Statement":[ { "Sid":"cross-account-upload", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Effect":"Allow", "Action": [ "glacier:UploadArchive", "glacier:InitiateMultipartUpload", "glacier:AbortMultipartUpload", "glacier:CompleteMultipartUpload" ], "Resource": [ "arn:aws:glacier:us-west-2:999999999999:vaults/examplevault" ] } ] }
慣れてくるとこっちを直接書いたほうが楽です。saveを押して設定完了です。
非常に簡単ですね。
まとめ
いかがでしたでしょうか。Glacierは最近はS3からのLifeCycleで移行するパターンが多いですが、正統のパターンも押さえておきましょう。